home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / cmln0985.arc / TESTPROG.BAS < prev   
BASIC Source File  |  1986-02-27  |  2KB  |  40 lines

  1. 500 ' ================PARSER TESTING PROGRAM======================
  2. 505 '             (Warning: this is a kludge !!)
  3. 510 '
  4. 515 ' Assumes lines 10-499 of merged data program contains node info
  5. 520 ' in the following form: first, the number of nodes (+1); next,
  6. 525 ' for each node, a list of numbers (terminated by 0) the first
  7. 530 ' element of which is an index into CD$ designating the character
  8. 535 ' set accepted by that node, and the remaining elements of which 
  9. 540 ' are the nodes which are the given node's possible successors in
  10. 545 ' the transition diagram.
  11. 550 ' The next set of data is for the defining the character sets
  12. 555 ' CD$(I), and consists of the the number of these sets (+ 1),
  13. 560 ' followed by strings containing those sets. So that control 
  14. 565 ' characters and quote marks can be included, any character occuring
  15. 570 ' twice in a row is replaced by ASC(that character)-32.
  16. 575 '
  17. 580 ' Change MERGE command in next line as desired.
  18. 585 '
  19. 590 CHAIN MERGE "EXAMPLE1",595,DELETE 590-590
  20. 595 DEFINT A-Z: RESTORE 10
  21. 600 READ L : DIM NN$(L),ND(L)
  22. 605 FOR CN=0 TO L
  23. 610   READ ND(CN):READ I:WHILE I>0:NN$(CN)=NN$(CN)+CHR$(I):READ I:WEND
  24. 615 NEXT
  25. 620 READ L:DIM CD$(L)
  26. 625 FOR I=0 TO L
  27. 630   READ CD$(I)
  28. 635   FOR CN=1 TO LEN(CD$(I))-1
  29. 640   IF MID$(CD$(I),CN,1)=MID$(CD$(I),CN+1,1) THEN CD$(I)=LEFT$(CD$(I),CN-1)+CHR$(ASC(MID$(CD$(I),CN))-32)+RIGHT$(CD$(I),LEN(CD$(I))-CN-1)
  30. 645   NEXT
  31. 650 NEXT
  32. 655 '
  33. 660 ' Now that the data is all set up, let's test the program:
  34. 665 '
  35. 670 CHAIN MERGE "PARSER",675,ALL,DELETE 670-670
  36. 675 PRINT : PRINT "ANOTHER:"; : GOSUB 1000 : GOTO 675
  37. 680 END
  38. gram:
  39. 665 '
  40. 670 CHAIN MERGE